/**
 * <strong>Title : WarehouseTypeService.java<br>
 * </strong> <strong>Package : cn.b.sky.mes.qm.service<br>
 * </strong> <strong>Description : </strong>@类注释说明写在此处@<br>
 * <strong>Create on : 2016年2月29日 上午10:14:35<br>
 * </strong>
 * <p>
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 *          <strong>修改历史:</strong><br>
 *          修改人 | 修改日期 | 修改描述<br>
 *          -------------------------------------------<br>
 * <br>
 * <br>
 */
package cn.b.sky.mes.mm.service;

import java.util.List;

import cn.b.sky.mes.mm.model.WarehouseType;
import cn.b.sky.mes.mm.model.condition.WarehouseTypeCondition;
import cn.b.sky.common.model.BatchJobReport;

/**
 * <strong>Title : WarehouseTypeService.java<br>
 * </strong> <strong>Package : cn.b.sky.mes.qm.service<br>
 * </strong> <strong>Description : </strong>仓库类型业务接口<br>
 * <strong>Create on : 2016年2月29日 上午10:14:35<br>
 * </strong>
 * <p>
 * 
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 *          <strong>修改历史:</strong><br>
 *          修改人 | 修改日期 | 修改描述<br>
 *          -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface WarehouseTypeService {

  List<WarehouseType> selectWarehouseTypeListByCondition(WarehouseTypeCondition condition);

  int selectWarehouseTypeCountByCondition(WarehouseTypeCondition condition);

  void insertWarehouseType(WarehouseType warehouseType);

  void updateWarehouseType(WarehouseType warehouseType);

  BatchJobReport deleteWarehouseType(String warehouseTypeCode, String siteCode);

  WarehouseType getWarehouseType(String warehouseTypeCode, String siteCode);

  /**
   * 
   * <strong>Title : selectWarehouseTypeWithWarehouse<br>
   * </strong> <strong>Description :
   * </strong>查询当前工厂下所有仓库类型及其下的仓库列表，lockFlag过滤仓库锁定标志<br>
   * <strong>Create on : 2016年3月2日 下午5:00:37<br>
   * </strong>
   * <p>
   * 
   * @param siteCode
   * @param lockFlag
   * @return List<WarehouseType>
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<WarehouseType> selectWarehouseTypeWithWarehouse(String siteCode, Integer lockFlag);

  /**
   * 
   * <strong>Title : selectWarehouseTypeSuggests<br>
   * </strong> <strong>Description : </strong>仓库类型搜索建议<br>
   * <strong>Create on : 2016年4月11日 下午7:45:42<br>
   * </strong>
   * <p>
   * 
   * @param condition
   * @return List<WarehouseType>
   * @throws
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<WarehouseType> selectWarehouseTypeSuggests(WarehouseTypeCondition condition);

}
